﻿#include "pch.h"

bool __bCOMAvailable = false;  // 是否支持串口通讯模式
bool __bLANAvailable = false;  // 是否为LAN通讯模式
bool __bAdvUI = false;         // 是否为靓丽界面
std::string Application_Title;
std::string __szAppTitle;
std::string __szEchromOEMInstName;

BOOL WINAPI GCPreInitSystem(char* strMainPath, char* strTitle) {

    /*
    __bCOMAvailable = false; 
    __bLANAvailable = true;  
    __bAdvUI = true;         
    std::string szTitle = strTitle;

    if (szTitle == "") {
        Application_Title = "Bridge ADS";
    }
    else {
        Application_Title = szTitle;
    }

    __szAppTitle = Application_Title;
    GlobalInit(PROTOCOL_GC6890, Application_Title, true, false,
        &__szEchromOEMInstName);  // 指定为GC6890反控版

    if (__szEchromOEMInstName.IsEmpty()) {
        //__szEchromOEMInstName = "A95";
    }

    __szAppPath = strMainPath;
    SysBusyOff();

    String szSettingsFile = __szAppPath + "Settings.ini";
    if (__szAppPath == "") {
        szSettingsFile = ".\\Settings.ini";
    }
    TIniFile* reg = new TIniFile(szSettingsFile);
    isWriteLogToLocalFile = reg->ReadInteger("SSKSettings", "WriteLogToLocalFile", 0) != 0;
    gdebug("WriteLogToLocalFile=%d", reg->ReadInteger("SSKSettings", "WriteLogToLocalFile", 0));
    */
    return TRUE;
}

CHEMDLL_API BOOL WINAPI GCInitSystem(char *strMainPath, HWND pMainWnd, int32_t nMaxEntryCount, char *strTitle, BOOL bOffline)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI GCExitSystem()
{
    // TODO
    return FALSE;
}

// 打开谱图文件
CHEMDLL_API BOOL WINAPI ChemLibOpenDataFile(int32_t nChannel, char *szFile, BOOL bByOrg, BOOL bLoadMethod, BOOL bReAnalysis)
{
    // TODO
    return FALSE;
}

// 保存谱图文件
CHEMDLL_API BOOL WINAPI ChemLibWriteDataFile(int32_t nChannel, char *szFile, BOOL bUpdate, BOOL bSaveAs)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibReadBaseLine(int32_t nChannel, char *szFile, BOOL bByOrg)
{
    // TODO
    return FALSE;
}

// 保存谱图文件
CHEMDLL_API BOOL WINAPI ChemLibExportDatData(int32_t nChannel, char *szFile, BOOL bCountFreqExcluded)
{
    // TODO
    return FALSE;
}

CHEMDLL_API double WINAPI ChemLibGetORGFileY(int32_t nChannel, int32_t nIndex)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibGetORGFileYDat(int32_t nChannel, int32_t nIndex)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibGetORGFileYBsl(int32_t nChannel, int32_t nIndex)
{
    // TODO
    return 0.0;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGFileColumnLength(int32_t nChannel, double f)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGFileDeadTime(int32_t nChannel, double f)
{
    // TODO
    return FALSE;
}

// 取得通道对应的谱图的绘图信息
CHEMDLL_API BOOL WINAPI ChemLibGetORGFileBagInf(int32_t nChannel, CTORGBag *p)
{
    // TODO
    return FALSE;
}

// 设置通道对应的谱图的绘图信息
CHEMDLL_API BOOL WINAPI ChemLibSetORGFileBagInf(int32_t nChannel, CTORGBag *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGFileStatus(int32_t nChannel, CTORGFileStatus *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetMergeInfo(int32_t nChannel, int32_t *mergeCount, MergedInfo *mergeInfo)
{
    // TODO
    return FALSE;
}

// 取得通道对应的谱图
CHEMDLL_API BOOL WINAPI ChemLibGetORGFile(int32_t nChannel, CTORGFile *p)
{
    // TODO
    return FALSE;
}

// 设置通道对应的谱图
CHEMDLL_API BOOL WINAPI ChemLibSetORGFile(int32_t nChannel, CTORGFile *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGFile2(char *szFile, CTORGFile *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGFile2(char *szFile, CTORGFile *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGAxisEx(int32_t nChannel, TORGAxisEx *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGAxisEx(int32_t nChannel, TORGAxisEx *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGSmpCat(int32_t nChannel, TSmpCat *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGSmpCat(int32_t nChannel, TSmpCat *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGSmpInfo(int32_t nChannel, CTSmpInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGSmpInfo(int32_t nChannel, CTSmpInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGSmpInjHead(int32_t nChannel, TSmpInjHead *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGSmpInjHead(int32_t nChannel, TSmpInjHead *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibAnalysisError()
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI ChemLibReAnalysis(int32_t nChannel, BOOL bOnlyInteg)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibValidTprgEvent(int32_t nChannel, EVENT nEvent, float t1, float t2)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetResultList(int32_t nChannel, BOOL bMoreColumns, BOOL bHideUkPk)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetResultList2(char *szFile, BOOL bMoreColumns, BOOL bHideUkPk)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSysList(int32_t nChannel, int32_t nPkUnitIdx)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSysList2(char *szFile, int32_t nPkUnitIdx)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSliceResult(int32_t nChannel, int32_t nUnitIdx)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSliceResult2(char *szFile, int32_t nUnitIdx)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSynResult(int32_t nChannel, char *szSynCExtColCaption)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSynResult3(int32_t nChannel, char *szSynCExtColCaption, int32_t sortBy)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetSynResult2(char *szFile, char *szSynCExtColCaption)
{
    // TODO
    return nullptr;
}

// 计算漂移时间窗
CHEMDLL_API double WINAPI ChemLibCalcPkDrift(int32_t nChannel, double fDriftTs, double fDriftTe)
{
    // TODO
    return 0.0;
}

CHEMDLL_API char *WINAPI ChemLibGetOtherStatus(int32_t nChannel)
{
    // TODO
    return nullptr;
}

// 计算漂移
CHEMDLL_API char *WINAPI ChemLibGetDriftS(int32_t nChannel, double pkDrift)
{
    // TODO
    return nullptr;
}

// 计算噪声
CHEMDLL_API char *WINAPI ChemLibGetNoiseS(int32_t nChannel, double pkNoise)
{
    // TODO
    return nullptr;
}

// 计算自动积分参数
CHEMDLL_API char *WINAPI ChemLibGetAutoIPara(int32_t nChannel, double fAutoIParaTs, double fAutoIParaTe)
{
    // TODO
    return nullptr;
}

// 计算自动峰宽
CHEMDLL_API char *WINAPI ChemLibGetPkWidth(int32_t nChannel, int32_t nPeakNo)
{
    // TODO
    return nullptr;
}

// 计算自动噪声
CHEMDLL_API char *WINAPI ChemLibGetPkNoise(int32_t nChannel, int32_t nPeakNo)
{
    // TODO
    return nullptr;
}

// 计算最小面积
CHEMDLL_API char *WINAPI ChemLibGetMinArea(int32_t nChannel, int32_t nPeakNo)
{
    // TODO
    return nullptr;
}

// 计算最小峰高
CHEMDLL_API char *WINAPI ChemLibGetMinHeight(int32_t nChannel, int32_t nPeakNo)
{
    // TODO
    return nullptr;
}

// 取得方法描述
CHEMDLL_API char *WINAPI ChemLibGetIntegralMethodDescript(int32_t nChannel)
{
    // TODO
    return nullptr;
}

// 取得积分通道对应的谱图的使用的方法描述
CHEMDLL_API char *WINAPI ChemLibGetORGIntegralMethodDescript(int32_t nChannel)
{
    // TODO
    return nullptr;
}

CHEMDLL_API double WINAPI ChemLibSetIntegralMethodNoise(int32_t nChannel, double noise, double yUnitEx)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibSetIntegralMethodMinArea(int32_t nChannel, double minArea, double yUnitEx)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibSetIntegralMethodMinHeight(int32_t nChannel, double minHeight, double yUnitEx)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibSetORGIntegralMethodNoise(int32_t nChannel, double noise, double yUnitEx)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibSetORGIntegralMethodMinArea(int32_t nChannel, double minArea, double yUnitEx)
{
    // TODO
    return 0.0;
}

CHEMDLL_API double WINAPI ChemLibSetORGIntegralMethodMinHeight(int32_t nChannel, double minHeight, double yUnitEx)
{
    // TODO
    return 0.0;
}

// 设置样品类型名字
CHEMDLL_API BOOL WINAPI ChemLibSetSmpCatName(int32_t nChannel, char *szSmpCatName)
{
    // TODO
    return FALSE;
}

// 取得样品类型名字
CHEMDLL_API char *WINAPI ChemLibGetSmpCatName(int32_t nChannel)
{
    // TODO
    return nullptr;
}

CHEMDLL_API int32_t WINAPI ChemLibGetUVScanMax(int32_t nChannel)
{
    // TODO
    return 0;
}

CHEMDLL_API int32_t WINAPI ChemLibGetUVScanMin(int32_t nChannel)
{
    // TODO
    return 0;
}

CHEMDLL_API int32_t WINAPI ChemLibGetUVScanMode(int32_t nChannel)
{
    // TODO
    return 0;
}

CHEMDLL_API float WINAPI ChemLibGetUVScanStep(int32_t nChannel)
{
    // TODO
    return 0.0;
}

CHEMDLL_API void WINAPI ChemLibSetUVScanMax(int32_t nChannel, int32_t n)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetUVScanMin(int32_t nChannel, int32_t n)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetUVScanMode(int32_t nChannel, int32_t n)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetUVScanStep(int32_t nChannel, float f)
{
    // TODO
    return;
}

CHEMDLL_API BOOL WINAPI ChemLibInitSmpMetricConc(int32_t nChannel, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibNewSmpMetricConc(int32_t nChannel, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibPasToUnitInf(int32_t nChannel, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI ChemLibGetSmpMetricConc(int32_t nChannel, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetSmpMetricConc(int32_t nChannel, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetSmpMetricConc2(char *strCatName, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetSmpMetricConc2(char *strCatName, CTMetricConc *p, int32_t nSmpType, char *strSmpSn, char *strMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibDeleteSmpMetricConc(int32_t nChannel, int32_t nSmpType, char *strSmpSn)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibDeleteSmpMetricConc2(char *strCatName, int32_t nSmpType, char *strSmpSn)
{
    // TODO
    return FALSE;
}

// 输出指纹
CHEMDLL_API BOOL WINAPI ChemLibExportAscForFingerPrint(int32_t nChannel, char *szFile)
{
    // TODO
    return FALSE;
}

// 重置Sample
CHEMDLL_API BOOL WINAPI ChemLibResetSample(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetWMinutes(char *szCatName, int32_t smpType, float minutes)
{
    // TODO
    return FALSE;
}

// 设置基线扣除
CHEMDLL_API char *WINAPI ChemLibSetBlankInfo(int32_t nChannel, int32_t nBlankSubMode, int32_t nByOrg, char *szBlnkFile)
{
    // TODO
    return nullptr;
}

CHEMDLL_API int32_t WINAPI ChemLibGetSynResultList(int32_t nChannel, TSynResultItem *p)
{
    // TODO
    return 0;
}

CHEMDLL_API int32_t WINAPI ChemLibGetSynResultList2(char *szFile, TSynResultItem *p)
{
    // TODO
    return 0;
}

CHEMDLL_API int32_t WINAPI ChemLibGetDLLResultList(int32_t nChannel, TDLLResultListItem *p)
{
    // TODO
    return 0;
}

CHEMDLL_API int32_t WINAPI ChemLibGetDLLResultList2(char *szFile, TDLLResultListItem *p)
{
    // TODO
    return 0;
}

CHEMDLL_API char *WINAPI ChemLibHPGGetGBTLimitValues(int32_t nChannel)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibHPGSetLevel(int32_t nChannel, int32_t nHPGLevel, BOOL *pORGFileChaned)
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI ChemLibSynResultAvailable(int32_t nCustomize)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibCheckMetricIstdConc(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibIsHPGEdition()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowGroupCalc()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowSlicesCalc()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowCalorif()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowUkPkFactor()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowBlankSub()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowFingerPrint()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowSequence()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowIdtColBasedOn()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowQCQA()
{
    // TODO
    return FALSE;
}

CHEMDLL_API void WINAPI ChemLibSetAllowQCQA(BOOL b)
{
    // TODO
    return;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowExternEvents()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowDataMerge()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetAllowResultsDB()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibHPGSetByFormula(BOOL bDefaultIdsByFormula)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibHPGGetByFormula()
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibHPGTypeLevelCaptionOf(int32_t nHPGType, int32_t nHPGLevel, BOOL bEnglish, BOOL bFormula)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibHPGSetType(int32_t nChannel, int32_t nHPGType, BOOL *pORGFileChaned)
{
    // TODO
    return FALSE;
}

CHEMDLL_API int32_t WINAPI ChemLibGetInjSn(char *szRowName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitMROption()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetMROption(CTMROption *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetMROption(CTMROption *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveMROption()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadMROption()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitSmpSettings(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetSmpSettings(int32_t nChannel, CTSmpSettings *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetSmpSettings(int32_t nChannel, CTSmpSettings *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveSmpSettings(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadSmpSettings(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitCatInfo(int32_t nChannel, double dAnalMinutes, int32_t nSmpType, CTCatInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetCatInfo(int32_t nChannel, CTCatInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetCatInfo(int32_t nChannel, CTCatInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetCatInfo2(char *strCatName, CTCatInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetCatInfo2(char *strCatName, CTCatInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveCatInfo(char *strCatName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadCatInfo(char *strCatName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API int32_t WINAPI ChemLibGetCatInfoCount()
{
    // TODO
    return 0;
}

CHEMDLL_API char *WINAPI ChemLibGetCatInfoName(int32_t nIndex)
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI ChemLibInitIntegralMethod(int32_t nChannel, CTIntegralMethod *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetIntegralMethod(int32_t nChannel, CTIntegralMethod *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetIntegralMethod(int32_t nChannel, CTIntegralMethod *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveIntegralMethod(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadIntegralMethod(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGIntegralMethod(int32_t nChannel, CTIntegralMethod *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGIntegralMethod(int32_t nChannel, CTIntegralMethod *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitDataMerge()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetDataMerge(CTDataMerge *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetDataMerge(CTDataMerge *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetDataMerge2(CTDataMerge *p1, CTDataMerge *p2)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetDataMerge2(CTDataMerge *p1, CTDataMerge *p2)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveDataMerge()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadDataMerge()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveInstCond(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadInstCond(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetCurrentInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetORGInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetORGInstCond(int32_t nChannel, CTInstCond *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitInstrument(int32_t nIdx, CTInstrument *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetInstrument(int32_t nIdx, CTInstrument *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetInstrument(int32_t nIdx, CTInstrument *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveInstrument()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadInstrument()
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibInitSmpInfo(int32_t nChannel, CTSmpInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetSmpInfo(int32_t nChannel, CTSmpInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetSmpInfo(int32_t nChannel, CTSmpInfo *p)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSaveSmpInfo(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLoadSmpInfo(int32_t nChannel, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLogin(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibLogout(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibStartSample(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibStopSample(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibAbortSample(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSimulateSample(int32_t nChannel)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibGetFileName(int nCh)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetFileName(int nCh, char *sFile)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibGetInstMethod(char *sFile)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetCurrentInstMethod(int nInstID)
{
    // TODO
    return nullptr;
}

CHEMDLL_API char *WINAPI ChemLibGetCurrentInstMethodName(int nInstID)
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI ChemLibSetCurrentInstMethodName(int nInstID, char *szName, bool bPrompt)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI GCRefreshMethod(int nInstID, char *szInstMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI GCDownloadInstMethod(int nInstMethodID, char *szInstMethod)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibGetIntetConfig(int nInstID, int nInetID, bool *bPneumaticsOn, double *dInletPres, int *iPressureUnit)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibSetIntetConfig(int nInstID, int nInetID, bool bPneumaticsOn, double dInletPres)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibCurrentInstMethodSaveAs(int nInstID, char *szName)
{
    // TODO
    return FALSE;
}

CHEMDLL_API void WINAPI ChemLibWriteLog2(char *s)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyAddInj(OnMyAddInj fnMyAddInj)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyDataMerge(OnMyDataMerge fnMyDataMerge)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyStopPostProcess(OnMyStopPostProcess fnMyStopPostProcess)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyStopSample(OnMyStopSample fnMyStopSample)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyStopPostReanal(OnMyStopPostReanal fnMyStopPostReanal)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyStartSglRun(OnMyStartSglRun fnMyStartSglRun)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyStopAbortSglRun(OnMyStopAbortSglRun fnMyStopAbortSglRun)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyChromScroll(OnMyChromScroll fnMyChromScroll)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyMyReAnalysis(OnMyReAnalysis fnMyReAnalysis)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyWriteFile(OnMyWriteFile fnMyWriteFile)
{
    // TODO
    return;
}

CHEMDLL_API void WINAPI ChemLibSetMyReadFile(OnMyReadFile fnMyReadFile)
{
    // TODO
    return;
}

CHEMDLL_API BOOL WINAPI ChemLibOnGC1949BaseLine(int nCh, int *pData, int nLen, double xUnit)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibOnGC1949DataLine(int nCh, int nStartIndex, int *pData, int nLen, double xUnit)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibOnGC1949StartSample(int nCh)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibOnGC1949StopSample(int nCh)
{
    // TODO
    return FALSE;
}

CHEMDLL_API void WINAPI ChemLibPlaySound(char *szWaveFile)
{
    // TODO
    return;
}

CHEMDLL_API BOOL WINAPI ChemLibSetLinkup(BOOL bLink)
{
    // TODO
    return FALSE;
}

CHEMDLL_API void WINAPI GCSetFileFreq(int nCh, double dFreq)
{
    // TODO
    return;
}

CHEMDLL_API char *WINAPI GCSendCmd(int nInstID, char *szCmd)
{
    // TODO
    return nullptr;
}

CHEMDLL_API BOOL WINAPI GCPostCmd(int nInstID, char *szCmd)
{
    // TODO
    return FALSE;
}

CHEMDLL_API BOOL WINAPI ChemLibExportCDF(int Channel, char *szCdfFile)
{
    // TODO
    return FALSE;
}

CHEMDLL_API char *WINAPI ChemLibExportCDFJson(int Channel)
{
    // TODO
    return nullptr;
}
